#ifndef Tab_Actor_tabletools_h
#define Tab_Actor_tabletools_h
#include <string>
#include <map>
#include <list>
#include <sstream>
#include <fstream>
class Tab_Actor
{
public:
	enum eTargetObjType{
		eTargetObjType_Normal = 0,
		eTargetObjType_Self = 1,
	};
private:
	int m_ID;
	int m_Level;
	std::string m_CardName;
	std::string m_ProfessionType;
	int m_Health;
	int m_PhysicalAttack;
	int m_PhysicalDefense;
	int m_MagicalResistance;
	int m_Speed;
	std::string m_Description;
	eTargetObjType m_TargetObjType;
	std::string m_BaseCardIcon;
public:
	int GetID() {return m_ID;}
	int GetLevel() {return m_Level;}
	std::string GetCardName() {return m_CardName;}
	std::string GetProfessionType() {return m_ProfessionType;}
	int GetHealth() {return m_Health;}
	int GetPhysicalAttack() {return m_PhysicalAttack;}
	int GetPhysicalDefense() {return m_PhysicalDefense;}
	int GetMagicalResistance() {return m_MagicalResistance;}
	int GetSpeed() {return m_Speed;}
	std::string GetDescription() {return m_Description;}
	eTargetObjType GetTargetObjType() {return m_TargetObjType;}
	std::string GetBaseCardIcon() {return m_BaseCardIcon;}
public:
	void SetID(int var){m_ID=var;}
	void SetLevel(int var){m_Level=var;}
	void SetCardName(std::string var){m_CardName=var;}
	void SetProfessionType(std::string var){m_ProfessionType=var;}
	void SetHealth(int var){m_Health=var;}
	void SetPhysicalAttack(int var){m_PhysicalAttack=var;}
	void SetPhysicalDefense(int var){m_PhysicalDefense=var;}
	void SetMagicalResistance(int var){m_MagicalResistance=var;}
	void SetSpeed(int var){m_Speed=var;}
	void SetDescription(std::string var){m_Description=var;}
	void SetTargetObjType(eTargetObjType var){m_TargetObjType=var;}
	void SetBaseCardIcon(std::string var){m_BaseCardIcon=var;}
private:
	void LoadData(const std::string &strData);
public:
	static std::map<int, Tab_Actor*> *s_pListTab_Actor;
	static void LoadTable();
};
typedef std::map<int, Tab_Actor*> MapTab_Actor;
#endif
